package com.zzyl.nursing.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzyl.common.utils.StringUtils;
import java.util.Objects;


import com.zzyl.nursing.mapper.AlertDataMapper;
import com.zzyl.nursing.domain.AlertData;
import com.zzyl.nursing.service.IAlertDataService;

import org.springframework.stereotype.Service;
import java.util.List;

/**
 * 报警数据Service业务层处理
 *
 * @author cao
 * @date 2025-01-09
 */
@Service
public class AlertDataServiceImpl extends ServiceImpl<AlertDataMapper, AlertData> implements IAlertDataService {

    /**
     * 查询报警数据列表
     *
     * @param alertData 报警数据
     * @return 报警数据
     */
    @Override
    public List<AlertData> selectAlertDataList(AlertData alertData) {
        return lambdaQuery()
            .eq(StringUtils.isNotEmpty(alertData.getIotId())
, AlertData::getIotId, alertData.getIotId())
            .like(StringUtils.isNotEmpty(alertData.getDeviceName()), AlertData::getDeviceName, alertData.getDeviceName())
            .like(StringUtils.isNotEmpty(alertData.getNickname()), AlertData::getNickname, alertData.getNickname())
            .eq(StringUtils.isNotEmpty(alertData.getProductKey())
, AlertData::getProductKey, alertData.getProductKey())
            .like(StringUtils.isNotEmpty(alertData.getProductName()), AlertData::getProductName, alertData.getProductName())
            .eq(StringUtils.isNotEmpty(alertData.getFunctionId())
, AlertData::getFunctionId, alertData.getFunctionId())
            .eq(StringUtils.isNotEmpty(alertData.getAccessLocation())
, AlertData::getAccessLocation, alertData.getAccessLocation())
            .eq(Objects.nonNull(alertData.getLocationType()), AlertData::getLocationType, alertData.getLocationType())
            .eq(Objects.nonNull(alertData.getPhysicalLocationType()), AlertData::getPhysicalLocationType, alertData.getPhysicalLocationType())
            .eq(StringUtils.isNotEmpty(alertData.getDeviceDescription())
, AlertData::getDeviceDescription, alertData.getDeviceDescription())
            .eq(StringUtils.isNotEmpty(alertData.getDataValue())
, AlertData::getDataValue, alertData.getDataValue())
            .eq(Objects.nonNull(alertData.getAlertRuleId()), AlertData::getAlertRuleId, alertData.getAlertRuleId())
            .eq(StringUtils.isNotEmpty(alertData.getAlertReason())
, AlertData::getAlertReason, alertData.getAlertReason())
            .eq(StringUtils.isNotEmpty(alertData.getProcessingResult())
, AlertData::getProcessingResult, alertData.getProcessingResult())
            .eq(Objects.nonNull(alertData.getProcessorId()), AlertData::getProcessorId, alertData.getProcessorId())
            .like(StringUtils.isNotEmpty(alertData.getProcessorName()), AlertData::getProcessorName, alertData.getProcessorName())
            .eq(Objects.nonNull(alertData.getProcessingTime()), AlertData::getProcessingTime, alertData.getProcessingTime())
            .eq(Objects.nonNull(alertData.getType()), AlertData::getType, alertData.getType())
            .eq(Objects.nonNull(alertData.getStatus()), AlertData::getStatus, alertData.getStatus())
            .eq(Objects.nonNull(alertData.getUserId()), AlertData::getUserId, alertData.getUserId())
            .list();
    }
}

